﻿namespace Sidvall.Security
{
    public static class ClaimTypes
    {
        // Core oidc claims
        public const string Subject = "sub";
        public const string Name = "name";
        public const string Name2 = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name";
        public const string GivenName = "given_name";
        public const string FamilyName = "family_name";
        public const string MiddleName = "middle_name";
        public const string Nickname = "nickname";
        public const string PreferredUserName = "preferred_username";
        public const string Profile = "profile";
        public const string Picture = "picture";
        public const string Website = "website";
        public const string Email = "email";
        public const string Email2 = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress";
        public const string EmailVerified = "email_verified";
        public const string Gender = "gender";
        public const string Birthdate = "birthdate";
        public const string ZoneInfo = "zoneinfo";
        public const string Locale = "locale";
        public const string PhoneNumber = "phone_number";
        public const string PhoneNumberVerified = "phone_number_verified";
        public const string Address = "address";
        public const string Audience = "aud";
        public const string Issuer = "iss";
        public const string NotBefore = "nbf";
        public const string Expiration = "exp";
        public const string ClientId = "client_id";

        // More standard claims
        public const string UpdatedAt = "updated_at";
        public const string IssuedAt = "iat";
        public const string AuthenticationMethodReference = "amr";
        public const string AuthenticationContextClassReference = "acr";
        public const string AuthenticationTime = "auth_time";
        public const string AuthorizedParty = "azp";
        public const string AccessTokenHash = "at_hash";
        public const string AuthorizationCodeHash = "c_hash";
        public const string Nonce = "nonce";
        public const string JsonWebTokenId = "jti";

        // Token response claims
        public const string AccessToken = "access_token";
        public const string IdentityToken = "id_token";
        public const string ExpiresIn = "expires_in";
        public const string RefreshToken = "refresh_token";
        public const string TokenType = "token_type";
        public const string State = "state";
        public const string Scope = "scope";
        public const string Error = "error";

        // More claims
        public const string Role = "role";
    }
}
